package com.road.yishi.execaction;

/**
 * @Description :延迟执行的动作
 * @FileName: DelayAction.java
 * @Author :WeiHui.Zhang
 * @Data : 2016年2月1日 上午11:58:23
 * @Version:V1.00
 */
public abstract class DelayAction extends Action {

	protected long execTime;

	public DelayAction(ActionQueue queue, int delay) {
		super(queue);
		execTime = System.currentTimeMillis() + delay;
	}

	public DelayAction(ActionQueue queue, long curTime, int delay) {
		super(queue);
		execTime = curTime + delay;
	}

	/**
	 * 
	 * @Name: tryExec
	 * @Description:尝试执行动作
	 * @Author: WeiHui.Zhang
	 * @Version: V1.00
	 * @Date: 2016年2月1日下午12:13:31
	 * @param curTime
	 * @return 
	 * @Return: boolean
	 */
	public boolean tryExec(long curTime) {
		if(curTime >= execTime) {
			createTime = curTime;
			getQueue().enqueue(this);
			return true;
		}
		return false;
	}
	
}
